#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<ctype.h>
#define M 3
struct mat{float nota1,nota2,nota3;};
struct datos {char nom[20];int legajo; struct mat notas;float prom;};
float Validar(float,float);
void ordenar(struct datos[]);



void main()
{
struct datos alumno[M];

int i;
int opc=0;

	while(opc!=4)
	{
	printf("\nMenu Principal\n");
	printf("--------------\n");
	printf("1 -Cargar:\n");
	printf("2 -Promedio:\n");
	printf("3 -Mostrar:\n");
	printf("4 -Salir:\n");
	scanf("%d", &opc);
	switch(opc)
		{
		case 1:
			clrscr();
			printf("\nHa ingresado en la opcion 'Cargas'");
			for(i=0;i<M;i++)
				{

				printf("\nIngrese el nombre y apellido: ");
				fflush(stdin);
				gets(alumno[i].nom);

				printf("Ingrese el numero de legajo del estudiante:\n");
				scanf("%d",&alumno[i].legajo);

				printf("Ingrese la primera nota:\n");
				alumno[i].notas.nota1=Validar(0,10);

				printf("Ingrese la segunda nota:\n");
				alumno[i].notas.nota2=Validar(0,10);

				printf("Ingrese la tercer nota:\n");
				alumno[i].notas.nota3=Validar(0,10);
				alumno[i].prom=(alumno[i].notas.nota1+alumno[i].notas.nota2+alumno[i].notas.nota3)/M;
				}

				printf("Presione ENTER para continuar...");
				getch();
				clrscr();
			break;
		case 2:
			clrscr();
			printf("Se han procesado los promedios...\n");
         printf("\nPresione ENTER para continuar...\n");
			getch();
			clrscr();
			break;
		case 3:
			clrscr();
			printf("La lista de alumnos ordenados alfabeticamente es:");
			ordenar(alumno);
			printf("\nPresione ENTER para continuar...\n");
			getch();
			clrscr();
			break;
		case 4:
			clrscr();
			printf("Gracias por usar el programa!");
			getch();
			break;
		}
	}
}

float Validar(float min,float max)
{
float a;
scanf("%f",&a);
	while(a<min||a>max)
	{
	printf("Error, reingrese nota valida, baboso!");
	scanf("%f",&a);
	}
return a;
}
void ordenar(struct datos alumno[M])
{
struct datos aux;

int i,j;
	  for(i=0;i<M-1;i++)
		{for(j=i+1;j<M;j++)
			if(strcmp(alumno[i].nom,alumno[j].nom)>0)
			{
			aux=alumno[j];
			alumno[j]=alumno[i];
			alumno[i]=aux;

			}
		}
printf("\n------------    --------\n");
for(i=0;i<M;i++)
	printf("\n%s \t %.2f",alumno[i].nom,alumno[i].prom);
}
